// Copyright Druid Mechanics

#pragma once

#include "CoreMinimal.h"
#include "AbilitySystem/Abilities/AuraProjectileSpell.h"
#include "AuraFireBolt.generated.h"

/**
 * 
 */
UCLASS()
class AURA_API UAuraFireBolt : public UAuraProjectileSpell
{
	GENERATED_BODY()

public:
	virtual FString GetDescription(int32 Level) override;
	virtual FString GetNextLevelDescription(int32 Level) override;
	UFUNCTION(BlueprintCallable)
	virtual void SpawnProjectiles(const FVector& ProjectileTargetLocation, const FGameplayTag& SocketTag,
	                              bool bOverridePath, float PitchOverride, AActor* HomingTarget);

protected:
	UPROPERTY(EditDefaultsOnly, Category = "FireBolt")
	float ProjectileSpread{90.f};
	UPROPERTY(EditDefaultsOnly, Category = "FireBolt")
	float MaxNumProjectles{5};
	UPROPERTY(EditDefaultsOnly, Category = "FireBolt")
	float HomingAccelerationMin {1600.f};
	UPROPERTY(EditDefaultsOnly, Category = "FireBolt")
	float HomingAccelerationMax {3200.f};
	UPROPERTY(EditDefaultsOnly, Category = "FireBolt")
	bool bLaunchHomingProjectiles {true};
	
};
